#ifndef JOB_INTERFACE_H
#define JOB_INTERFACE_H

#include <chrono>
#include <string>

/**
 * @brief 任务接口类
 * 所有任务必须继承此类并实现其虚函数
 */
class JobInterface {
public:
    virtual ~JobInterface() = default;
    
    /**
     * @brief 执行任务的具体逻辑
     */
    virtual void execute() = 0;
    
    /**
     * @brief 获取任务的调度周期
     * @return 调度周期（毫秒）
     */
    virtual std::chrono::milliseconds getPeriod() const = 0;
    
    /**
     * @brief 获取任务的最大执行时间
     * @return 最大执行时间（毫秒）
     */
    virtual std::chrono::milliseconds getMaxExecutionTime() const = 0;
    
    /**
     * @brief 获取任务ID用于标识
     * @return 任务ID字符串
     */
    virtual std::string getId() const = 0;
};

#endif // JOB_INTERFACE_H